The consumer market for mobile phone applications is increasing at enormous pace. The applications require extensive testing to discover and eliminate hidden flaws and bugs. Conventionally, application testing involves loading an application on a mobile phone and operating it with the help of a human tester. The human tester performs various operations, and compares the output with the expected output as per the test case. This method requires the human tester to be present in the mobile phone network, restricting the direct application of the global outsourcing business model for functional testing of mobile phones.
Currently, mobile application testing solutions offer the provision of remote automatic mobile testing. In such testing solutions handsets can be accessed remotely over the Internet with an hourly subscription fee. The subscriber receives a handset GUI on his tester system (e.g. a computing device) that allows operation similar to a real device in hand. The operating instructions are sent to the real device and output is communicated to the GUI on the tester's computer. The video camera captures the screen output of handset and communicates it to a remote tester. Moreover, existing commercial solutions rely on giving absolute co-ordinates for scripting. For example, to specify the login/password field in a user authentication environment, the script creator needs to specify the (x,y) co-ordinates of the dialog box where the inputs need to be provided. In addition, different handheld devices may have different scripts for inputting login/password fields depending on the requirement.
Existing automated mobile application testing solutions do not have adaptive capability to learn from the past experience and improve its performance in the future. The current technology of mobile testing has primarily been driven by inputs from a human tester. A human tester needs to provide regular inputs through a user interface for a test case of the application. Further, in case of semi-automated systems, regular inputs are required from a human tester with no provision for the testing device to learn and adapt itself for the test case.
Therefore, there is a need for enhancing the automation in mobile application testing systems such that the testing systems are adaptive to learn through user inputs and correct itself when the same test case is repeated next time.